所有命令均在 root 模式下执行

关闭podman容器

如果有podman容器,先卸载掉podman 因为和docker冲突了(虽然说k8s抛弃docker后面都是开始使用podman)

yum remove podman

关闭交换区

swapoff -a #临时关闭 
sed -i 's/.*swap.*/#&/' /etc/fstab #永久关闭交换区

禁用selinux

setenforce 0 #临时关闭
sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #永久关闭

关闭防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service

安装系统基本源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

添加K8S安装源

新建 /etc/yum.repos.d/kubernetes.repo 内容如下

[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
顺手来个docker加速
mkdir -p /etc/docker && vim /etc/docker/daemon.json
{
"registry-mirrors" : ["https://mj9kvemk.mirror.aliyuncs.com"]
}

“registry-mirrors” 这个网址可以从阿里云上找个容器加速网址copy上去 也可以用自己的加速网址不需要按照原文来都可以

反手来个驱动修改

(后续初始化K8S的要求)

vim /usr/lib/systemd/system/docker.service
在ExecStart命令中添加
--exec-opt native.cgroupdriver=systemd

:wq 保存后重启一下docker

systemctl daemon-reload
systemctl restart docker
可以查看当前驱动是否为 systemd
docker info | grep Cgroup

安装kubectl/kubelet/kubeadm

安装默认都是当前最高版本
温馨提醒:如果后续要装其它诸如Dashboard可视化页面等在版本上务必先确认是否兼容 避免卸载重装 在做一次配置等重复的无用功!

yum install -y kubectl kubelet kubeadm
systemctl enable kubelet
systemctl start kubelet
查看当前安装的版本号
kubeadm version
kubectl version --client
kubelet --version

初始化K8S

kubernetes-version为当前安装的版本号

kubeadm init --apiserver-advertise-address=0.0.0.0 \
--apiserver-cert-extra-sans=127.0.0.1 \
--image-repository=registry.aliyuncs.com/google_containers \
--ignore-preflight-errors=all \
--kubernetes-version=v1.20.1 \
--service-cidr=10.10.0.0/16 \
--pod-network-cidr=10.18.0.0/16

如果有报错,根据报错查阅 www.baidu.com 即可

拷贝一下K8S配置

方便后续的使用

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装calico网络(通讯)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

命令执行完后部署就结束了,用kubectl等命令验证